﻿using BCCommon.Enums;
using BCCommon.Extensions;
using BCCommon.PaymentEnums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BCDto.TMS.AgentFlowRecord
{
    /// <summary>
    /// 供应商流水记录
    /// </summary>
    public class AgentFlowRecordDto
    {
        /// <summary>
        /// 供应商流水记录Id
        /// </summary>
        public long AgentFlowRecordId { get; set; }
        /// <summary>
        /// 供应商id
        /// </summary>
        public long AgentRecordId { get; set; }
        /// <summary>
        /// 供应商名称
        /// </summary>
        public string AgentName { get; set; }
        /// <summary>
        /// 流水类型
        /// </summary>
        public FlowType FlowType { get; set; }
        /// <summary>
        /// 流水类型名称
        /// </summary>
        public string FlowTypeName { get; set; }
        /// <summary>
        /// 订单编号
        /// </summary>
        public string OrderNo { get; set; }
        /// <summary>
        /// 余额
        /// </summary>
        public decimal Balance { get; set; }
        /// <summary>
        /// 资金流向
        /// </summary>
        public FlowDirectionType FlowDirection { get; set; }

        /// <summary>
        /// 资金流向名称
        /// </summary>
        public string FlowDirectionDesc => FlowDirection.GetDescriptionString();
        /// <summary>
        /// 金额
        /// </summary>
        public decimal Amount { get; set; }
        /// <summary>
        /// 支付渠道
        /// </summary>
        public PaymentChannelType Channel { get; set; }
        /// <summary>
        /// 支付渠道名称
        /// </summary>
        public string ChannelDesc => Channel.GetDescriptionString();
        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }
        /// <summary>
        /// 风险级别
        /// </summary>
        public SourceRiskLevelType RiskLevel { get; set; }
        /// <summary>
        /// 风险级别字符串
        /// </summary>
        public string RiskLevelStr => RiskLevel.GetDescriptionString();
    }
}
